home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS069.dsk / HORSE RACE III.bas < prev    next >
BASIC Source File  |  2012-02-16  |  8KB  |  136 lines

  1. 40  POKE 232,0: POKE 233,3
  2. 50  POKE 768,1: POKE 769,0: POKE 770,4: POKE 771,0
  3. 60  FOR I = 1 TO 8: READ A$: NEXT I
  4. 70  FOR I = 772 TO 820: READ A,B
  5. 80  IF A =  -9  OR B =  -9  THEN 110
  6. 90 C = (B *8) +A +36: POKE I,C: NEXT I
  7. 110  POKE I,0: POKE I +1,0: SCALE= 1: ROT= 0
  8. 130  TEXT : HOME : SPEED= 255:C$ = "WPS"
  9. 140 N$(1) = "WIN":N$(2) = "PLACE":N$(3) = "SHOW"
  10. 150  FOR I = 1 TO 8:W(I) = 500: NEXT I
  11. 190  PRINT  TAB( 15)"HORSE RACE": PRINT : PRINT : PRINT 
  12. 200  PRINT "INSTRUCTIONS? ";
  13. 210  GET A$: IF A$ = "Y"  THEN 1660
  14. 220  IF A$ < >"N"  THEN 210
  15. 240  HOME : PRINT  TAB( 9)"WELCOME TO THE RACES": PRINT : PRINT : PRINT 
  16. 260  PRINT "HOW MANY PLAYERS(1-8)";
  17. 270  GET A$:P =  VAL(A$): IF P <1  OR P >8  THEN 270
  18. 280  IF P = 1  THEN  PRINT : PRINT "WHAT IS YOUR NAME";: INPUT P$(1): GOSUB 300: GOTO 410
  19. 290  GOSUB 300: GOTO 340
  20. 300  RESTORE : FOR I = 1 TO 8: READ H$(I): NEXT I
  21. 310  RETURN 
  22. 320  DATA  " ECLIPSE"," MAN O' WAR"  ," SLOW GEORGE"," BLACKIE" 
  23. 330  DATA   " STARBUCK"," CLEMENTINE",          " SLAPSHOT"   ," STEPHEN"
  24. 340  PRINT 
  25. 350  PRINT "TYPE NAME FOR "
  26. 360  FOR I = 1 TO P
  27. 370  PRINT "PLAYER # "I;: INPUT P$(I): IF I = 1  THEN 400
  28. 380  FOR J = 1 TO I -1: IF P$(I) = P$(J)  THEN  PRINT "SOMEONE IS ALREADY USING THAT NAME.": GOTO 370
  29. 390  NEXT J
  30. 400  NEXT I
  31. 410  TEXT : HOME :T = 0:Z = 0: POKE 34,11
  32. 450  FOR I = 1 TO 8:O(I) =  INT(9 * RND(1) +2):T = T +O(I): NEXT I
  33. 460  FOR I = 1 TO 8:H(I) = 21: NEXT I
  34. 470  FOR I = 1 TO 8:O(I) = T/O(I): NEXT I
  35. 510  PRINT " HORSE" TAB( 15)"NUMBER" TAB( 23)"WINS" TAB( 30)"ODDS"
  36. 520  PRINT 
  37. 530  FOR I = 1 TO 8: PRINT H$(I); TAB( 18);I; TAB( 24);WI(I); TAB( 30);:A$ =  STR$(O(I))
  38. 540  IF  VAL( LEFT$(A$,2)) <10  THEN A$ = " " +A$
  39. 550  IF  VAL(A$) - INT( VAL(A$)) = 0  THEN A$ = A$ +".0"
  40. 560 A$(I) =  LEFT$(A$,4): PRINT A$(I)":1": NEXT I
  41. 570  PRINT : FOR I = 1 TO P
  42. 610  PRINT P$(I)": $" INT(W(I)): PRINT "INPUT BET, HORSE #, W,P, OR S";
  43. 620  INPUT M(I),B(I),A$
  44. 630  FOR DE = 1 TO 3: IF A$ =  MID$ (C$,DE,1)  THEN DE(I) = DE: GOTO 660
  45. 640  NEXT DE: PRINT "?NO SUCH BET ";
  46. 650  PRINT  CHR$(7)"ERROR": PRINT : GOTO 610
  47. 660  IF M(I) <0  OR M(I) >10000  THEN  PRINT "?CAN'T BET THAT ";: GOTO 650
  48. 670  IF B(I) <1  OR B(I) >8  THEN  PRINT "?NO SUCH HORSE ";: GOTO 650
  49. 680 W(I) = W(I) -M(I)
  50. 690  IF W(I) <0  THEN  PRINT "?NOT ENOUGH MONEY ";:W(I) = W(I) +M(I): GOTO 650
  51. 700  NEXT I
  52. 710  FOR I = 1 TO 8:T(I) = 18: NEXT I
  53. 720  FOR I = P TO 1  STEP  -1:H$(B(I)) =  STR$(I) +H$(B(I)):T(B(I)) = T(B(I)) -1: NEXT I
  54. 760  HGR : HCOLOR= 3: FOR I = 24 TO 152  STEP 16: HPLOT 0,I TO 265,I: NEXT I
  55. 765  HOME : VTAB 21
  56. 770  HPLOT 265,24 TO 265,152: HPLOT 0,24 TO 0,152: HPLOT 25,24 TO 25,152
  57. 780  FOR I = 1 TO 8: DRAW 1 AT 21,13 +I *16: NEXT I
  58. 790  HPLOT 5,29 TO 5,35: HPLOT 4,30: HPLOT 4,35 TO 6,35
  59. 800  HPLOT 3,46: HPLOT 4,45 TO 6,45: HPLOT 7,46 TO 7,47: HPLOT 5,48 TO 6,48: HPLOT 4,49: HPLOT 3,50: HPLOT 3,51 TO 7,51
  60. 810  HPLOT 3,61 TO 7,61 TO 7,62: HPLOT 6,63: HPLOT 5,64 TO 6,64: HPLOT 7,65 TO 7,66: HPLOT 4,67 TO 6,67: HPLOT 3,66
  61. 820  HPLOT 6,77 TO 6,83: HPLOT 3,81 TO 7,81: HPLOT 3,80: HPLOT 4,79: HPLOT 5,78
  62. 830  HPLOT 7,93 TO 3,93 TO 3,95 TO 6,95: HPLOT 7,96 TO 7,98: HPLOT 6,99 TO 4,99: HPLOT 3,98
  63. 840  HPLOT 7,109 TO 5,109: HPLOT 4,110: HPLOT 3,111 TO 3,114: HPLOT 3,112 TO 6,112: HPLOT 7,113 TO 7,114: HPLOT 4,115 TO 6,115
  64. 850  HPLOT 3,125 TO 7,125 TO 7,126: HPLOT 6,127: HPLOT 5,128: HPLOT 4,129 TO 4,131
  65. 860  HPLOT 4,141 TO 6,141: HPLOT 4,144 TO 6,144: HPLOT 4,147 TO 6,147: HPLOT 3,142 TO 3,143: HPLOT 7,142 TO 7,143: HPLOT 3,145 TO 3,146: HPLOT 7,145 TO 7,146
  66. 870  HPLOT 274,45 TO 270,45 TO 270,51: HPLOT 270,48 TO 273,48: HPLOT 271,61 TO 273,61: HPLOT 271,67 TO 273,67: HPLOT 272,61 TO 272,67
  67. 880  HPLOT 270,77 TO 270,83: HPLOT 274,77 TO 274,83: HPLOT 271,79: HPLOT 272,80: HPLOT 273,81
  68. 890  HPLOT 271,93 TO 273,93: HPLOT 271,99 TO 273,99: HPLOT 272,93 TO 272,99
  69. 900  HPLOT 274,110: HPLOT 273,109 TO 271,109: HPLOT 270,110 TO 270,111: HPLOT 271,112 TO 273,112: HPLOT 274,113 TO 274,114: HPLOT 273,115 TO 271,115: HPLOT 270,114
  70. 910  HPLOT 270,125 TO 270,131: HPLOT 274,125 TO 274,131: HPLOT 270,128 TO 274,128
  71. 920  FOR I = 1 TO 750: NEXT I
  72. 960  FOR I = 1 TO 10: PRINT  CHR$(7): NEXT I
  73. 970  FOR I = 1 TO 250: NEXT I
  74. 980  FOR I = 137 TO 25  STEP  -16: HCOLOR= 0: HPLOT 25,I TO 25,I +14: HCOLOR= 1: HPLOT 25,I +15 TO 35,I
  75. 990  HCOLOR= 0: HPLOT 25,I +15 TO 35,I: HCOLOR= 1: HPLOT 25,I +14 TO 40,I +14: NEXT I
  76. 1040  FOR I = 0 TO 6:C(I +1) = 5 +I *15: NEXT I
  77. 1050  GOSUB 1580: FOR E = 1 TO 8:I = X(E):D = (100 * RND(1) +1)
  78. 1060  IF H(I) = 0  THEN 1130
  79. 1070  FOR J = 1 TO 7: IF D <O(I) +C(J)  THEN 1090
  80. 1080  NEXT J
  81. 1090  FOR K = H(I) TO H(I) +J *4  STEP 4: HCOLOR= 0: DRAW 1 AT K -4,13 +I *16: HCOLOR= 3: DRAW 1 AT K,13 +I *16
  82. 1100  IF K = 265  THEN H(I) = 265: GOSUB 1510: GOTO 1130
  83. 1110  NEXT K
  84. 1120 H(I) = H(I) +J *4
  85. 1130  NEXT E
  86. 1140 L = 0
  87. 1150  GOTO 1050
  88. 1180  TEXT : HOME : PRINT "PLACE" TAB( 8)"NUMBER"; TAB( 21)"HORSE"; TAB( 33)"ODDS"
  89. 1190  FOR I = 1 TO 8: PRINT I; TAB( 8);Z(I); TAB( T(Z(I)));H$(Z(I)); TAB( 33);A$(Z(I))":1"
  90. 1200  NEXT I
  91. 1240 L = L +1
  92. 1250  FOR J = 1 TO DE(L): IF B(L) = Z(J)  THEN  PRINT P$(L)" WINS "N$(DE(L))" BET FOR $" INT((M(L)/DE(L) *O(Z(J))) -M(L)):W(L) = W(L) +M(L)/DE(L) *O(Z(J))
  93. 1260  NEXT J
  94. 1270  IF L < >P  THEN 1240
  95. 1280  FOR I = 1 TO P: PRINT P$(I)" HAS $" INT(W(I));: IF Y(I) <0  THEN  PRINT " AND OWES $" INT( -Y(I));
  96. 1290  PRINT 
  97. 1310  IF W(I) <1  THEN  GOSUB 1460
  98. 1330  IF Y(I) <0  AND W(I) >1000  THEN 1470
  99. 1340  NEXT I
  100. 1380  PRINT "ANOTHER RACE?";
  101. 1390  GET A$: IF A$ = "N"  THEN  END 
  102. 1400  IF A$ = "Y"  THEN  GOSUB 300: TEXT : HOME : GOTO 410
  103. 1410  GOTO 1390
  104. 1420  END 
  105. 1460  PRINT P$(I)" IS NOW IN DEBT $";:Y(I) = Y(I) -500: PRINT  INT( -Y(I)):W(I) = W(I) +500: RETURN 
  106. 1470  PRINT "PAYING OFF SOME OF YOUR DEBT, "P$(I):W(I) = W(I) -500:Y(I) = Y(I) +500: GOTO 1330
  107. 1510  FOR M = 1 TO 8: IF H(M) = 265  THEN Z = Z +1:Z(Z) = M:H(M) = 0: GOTO 1530
  108. 1520  NEXT M: RETURN 
  109. 1530  IF Z = 1  THEN  PRINT "*** FIRST -- "H$(Z(1))" # "Z(1):WI(Z(1)) = WI(Z(1)) +1
  110. 1540  IF Z = 2  THEN  PRINT "*** SECOND -- "H$(Z(2))" # "Z(2)
  111. 1550  IF Z = 3  THEN  PRINT "*** THIRD -- "H$(Z(3))" # "Z(3);
  112. 1560  IF Z = 8  THEN  POP : GOTO 1180
  113. 1570  GOTO 1520
  114. 1580  FOR I = 1 TO 8
  115. 1590 X(I) =  INT(8 * RND(1) +1): FOR II = 0 TO I -1: IF X(I) = X(II)  THEN 1590
  116. 1600  FOR II = 0 TO I -1: IF X(I) = X(II)  THEN 1590
  117. 1610  NEXT II,I: RETURN 
  118. 1620  DATA  2,3,2,3,2,2,1,2,1,2,3,3,0,3,0,3,3,3,2,3,2,3,3,0,1,0,1,0,0,3,2,3,1,0,1,1,1,1,0,1,0,0,1,2,1,1,2,-9,-9
  119. 1660  HOME :X$ = "WELCOME TO THE GENZ-BRAUN RACE TRACK": PRINT X$: PRINT :X$ = "TODAY WE WILL HAVE THE THREE YEAR OLDS 6FURLONG RACES": PRINT X$
  120. 1670  PRINT :X$ = "YOU CHOOSE A HORSE, HOW MUCH MONEY, AND TO WIN, PLACE OR SHOW (W,P OR S).": PRINT X$: PRINT :X$ = "BETTING TO WIN PAYS FULL ODDS, TO PLACE PAYS HALF ODDS ON A 1ST OR 2ND PLACE    HORSE AND SHOW PAYS 1/3 ODDS ON A 1ST,  2ND, OR 3RD PLACE HORSE.
  121. 1675  PRINT X$: PRINT 
  122. 1680 X$ = "WHEN YOU RUN OUT OF MONEY YOU WILL BE   LOANED $500.  WHEN YOU HAVE ENOUGH MONEYYOUR LOANS WILL BE PAID BACK.": PRINT X$:X$ = "PRESS ANY KEY TO CONTINUE": PRINT : PRINT X$;: GET X$: GOTO 240
  123. 9986  REM <CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J><CTRL-J>
  124. 9987  REM  *********************
  125. 9988  REM  *                   *
  126. 9989  REM  *     HORSE RACE    *
  127. 9990  REM  *                   *
  128. 9991  REM  *        BY         *
  129. 9992  REM  *                   *
  130. 9993  REM  *   GEOFFREY GENZ   *
  131. 9994  REM  *         &         *
  132. 9995  REM  *    PAUL BRAUN     *
  133. 9996  REM  *                   *
  134. 9997  REM  *   AGES 14 & 15    *
  135. 9998  REM  *                   *
  136. 9999  REM  *********************